home *** CD-ROM | disk | FTP | other *** search
/ CD World 1998 January / CD World - Ocak 1998.iso / misc / dbase55 / disk6 / samples1.pak / LINKLIST.PRG < prev    next >
Text File  |  1996-01-05  |  2KB  |  89 lines

  1. *******************************************************************************
  2. *  PROGRAM:      Linklist.prg
  3. *
  4. *  WRITTEN BY:   Borland Samples Group
  5. *
  6. *  DATE:         6/93
  7. *
  8. *  UPDATED:      5/95
  9. *
  10. *  VERSION:      Visual dBASE
  11. *
  12. *  DESCRIPTION:  This program creates a simple linked list of integers
  13. *                from 1 to 10.  Each link in the chain is an instance of the
  14. *                MyList class, which has 2 properties -- value, and next.
  15. *                After the list is created, the function ShowList steps
  16. *                through the list and shows all the links that have been
  17. *                created.
  18. *
  19. *  PARAMETERS:   None
  20. *
  21. *  CALLS:        None
  22. *
  23. *  USAGE:        DO Linklist
  24. *
  25. *******************************************************************************
  26.  
  27. * environment
  28. private saveTalk, saveLdCheck
  29.  
  30. if set("talk") = "ON"
  31.    set talk off
  32.    saveTalk = "ON"
  33. else
  34.    saveTalk = "OFF"
  35. endif
  36.  
  37. saveLdCheck = set("ldCheck")
  38. set ldCheck off
  39.  
  40. * a simple xbase linked-list:
  41. private startList, link, i
  42.  
  43. * beginning of the list
  44. startList = new MyList()     && Instantiation
  45. link = startList             && Link is a temporary reference for
  46.                              && stepping through the list
  47. for i = 1 to 10
  48.    link.val = i
  49.    if i < 10   && don't need an extra instance of the class
  50.       link.next = new MyList() && create a new link
  51.       link = link.next
  52.    endif
  53. next
  54.  
  55. do ShowList
  56.  
  57. * restore environment
  58. set ldCheck &saveLdCheck
  59. set talk &saveTalk
  60.  
  61.  
  62. * class definition for MyList
  63. *******************************************************************************
  64. *******************************************************************************
  65. class MyList
  66. *******************************************************************************
  67.  
  68.    this.val = 0
  69.    this.next = 0
  70.  
  71. endclass
  72.  
  73.  
  74.  
  75.  
  76. *******************************************************************************
  77. function ShowList
  78.  
  79. *   Displays the linked list created in the main program
  80. *******************************************************************************
  81.  
  82. link = startList  && start at the beginning of the list
  83. do while (.not. empty(link))  && Go until no next link in list
  84.    ? link.val
  85.    link = link.next
  86. enddo
  87.  
  88.  
  89.